package ar.com.algotres.tpdos.model.aviones;

import ar.com.algotres.tpdos.model.aterrizable.CaracteristicasPista;
import ar.com.algotres.tpdos.model.aterrizable.Pista;
import ar.com.algotres.tpdos.model.controlador.ITorreDeControl;
import ar.com.algotres.tpdos.model.fisica.Movimiento;
import ar.com.algotres.tpdos.model.fisica.Posicion;
import ar.com.algotres.tpdos.views.juego.IVistaJuego;

public class AvionSimple extends Avion {
	
	private static final Double PESO_AVION = 1000.0;

	public AvionSimple(ITorreDeControl torre, Movimiento movimiento,Posicion posicion) {
		super(torre, movimiento, posicion, caracteristicas());
	}
	
	private static CaracteristicasAvion caracteristicas() {
		return new CaracteristicasAvion(PESO_AVION);
	}
	
	@Override
	public boolean puedeAterrizarEnPista(Pista pista) {
		CaracteristicasPista caracteristicasPista = pista.getCaracteristicasPista();
		return caracteristicasPista.admiteAviones() 
				&& (caracteristicasPista.getPesoMaximoAdmitido() > getCaracteristicas().getPeso());
	}

	@Override
	public void avionCreado(IVistaJuego vistaJuego) {
		vistaJuego.avionSimpleCreado(this);		
	}

}
